Method and system for making optimal estimates of linearity metrics of analog-to-digital converters

ABSTRACT

A method and system for making optimal estimates of linearity metrics of analog-to-digital converters. A model building phase and a production test strategy are employed. During the model-building phase, a linear model an analog-to-digital converter is constructed from a set of accurately measured transition code voltages for a set of training analog-to-digital converters. During a production test of an individual analog-to-digital converter, a ramp test signal is applied to the individual analog-to-digital converter, a histogram of codes is produced, and the transition code voltages for the individual analog-to-digital converter are estimated from the resulting histogram. Linearity characteristics of the individual analog-to-digital converter may then be computed.

RELATED APPLICATIONS

[0001] This application is based on Provisional Application Ser. No. 60/198,355, hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

[0002] This invention relates to production testing of integrated electronic circuits, and particularly to testing of analog-to-digital converter (“ADC”) circuits as they are produced to determine their functional specifications.

[0003] ADCs are characterized by functional specifications, such as integral nonlinearity (“INL”) and differential nonlinearity (“DNL”). To determine whether a given ADC that has been manufactured meets the required specifications, it must be tested. Conventional testing of ADCs as they are produced involves direct measurement of their functional specifications. However, as ADCs continue to improve in resolution, direct measurement has become more time time consuming and expensive. The measurement of INL and DNL, that is, linearity testing, constitutes the major portion of the ADC test time (35-50%) and, therefore, the major portion of the test cost for ADCs.

[0004] The measurement of INL and DNL involves the measurement of all the code transitions voltages (“CTs”) (the voltage input at which the output code of an ADC changes) of an ADC. In response to the problem of increasing test times, various techniques have been developed that estimate all of the CTs from a subset of CT measurements, Such techniques are described, for example, in: 117 G. N. Stenbakken and T. M. Souders, “Test-Point Selection and Testability Measures via QR Factorization of Linear Models,” IEEE Transactions on Instrumentation and Measurement, Vol. IM-36, No. 2. June 1987, pp 406-410 (“Stenbakken and Souders I”); T. M. Souders and G. N Stenbakken, “A Comprehensive Approach to Modeling and Testing of Mixed-signal Devices,” Proceeding of IEEE International Test Conference, 1990, pp 169-176 (“Souders and Stenbakken”); G. N. Stenbakken and T. M. Souders, “Linear Error Modeling of Analog and Mixed-Signal Devices,” Proceeding of IEEE International Test Conference, 1991, pp 573-581 (“Stenbakken and Souders II”); G. N. Stenbakken and T. M. Souders, “Developing Linear Error Models for Analog Devices,”IEEE Transactions on Instrumentation and Measurements, Vol. 43, No. 2, April 1994, pp 157-163 (“Stenbakken and Souders III”); and T. D. Lyons, The Production Implementation of a Linear Error Modeling Technique,” Proceeding of IEEE International Test Conference, 1992, pp 399-404 (“Lyons”).

[0005] Techniques such as those described in the aforementioned references are based on two assumptions. First, for most high resolution ADCs, the number of variables, such as the values of resistors, capacitors and transistor transconductances, which control their linearity is much less than the total number of CTs. Second, the variations in these variables is typically small so that the relationship between these variables and the corresponding CTs can be well approximated by a linear function, second order or higher order terms being negligible. Techniques for using a linear model with three different production test methods to save test time have been described in P. D. Capofreddi and B. A. Wooley, “The Use of Linear Models in A/D Converter Testing,” IEEE transactions on Circuits and Systems—I: Fundamental Theory and Applications, Vol. 44, No. 12, December 1997, pp 1105-1113 (“Capofreddi and Wooley I”), and P. D. Capofreddi and B. A. Wooley, “The Use of Linear Models for the Efficient and Accurate Testing of A/D Converters,” Proceeding of IEEE International Test Conference, 1995, pp 54-60 (Capofreddi and Wooley II”).

[0006] INL and DNL are measures of how much the CTs of an ADC differ from ideal linear behavior. Specifically, DNL is a measure of the deviation from the ideal 1 least significant bit (“LSB”) of the voltage span that is associated with each output code. INL is the worst case deviation of an ADC transfer function from the line between the measured end points (zero and full scale) of the ADC. INL and DNL are usually expressed in LSBs. These measures are illustrated on FIG. 1.

[0007] DNL and INL can be expressed in terms of the CTs as: $\begin{matrix} {{DNL}_{i} = {\left( \frac{\gamma_{i} - \gamma_{i - 1}}{1{LSB}} \right) - 1}} & (1) \\ {{INL}_{i} = \frac{\gamma_{i} - \gamma_{1} - {\left( {\left( {\gamma_{2^{''} - 1} - \gamma_{1}} \right)/\left( {2^{''} - 2} \right)} \right) \cdot \left( {i - 1} \right)}}{1{LSB}}} & (2) \end{matrix}$

[0008] where γ_(i) is the i^(th) CT,

[0009] n is the number of bits in the ADC, and

[0010] 1LSB denotes the ideal voltage span of 1 of the ADC.

[0011] Since INL and DNL can be easily computed with a few algebraic operations once the CTs are known, the task in determining the INL and DNL is to determine the CTs, that is, the γ_(i)s. INL and DNL measurements usually involve the measurement of all the CTs of an ADC. At least three different techniques can be used for the measurement of INL and DNL of ADCs, as described in S. Max, “Fast Accurate and Complete ADC Testing,” Proceeding of IEEE International Test Conference, 1989, pp 111-117 (hereinafter “S. Max”). The three techniques are (i) the servo-loop method, (ii) the ramp histogram method (tally and weight method) and (iii) the sine wave histogram method (aka code density method). The servo loop method involves the use of an analog integrator in a feedback loop and has a long test time because of the large settling time of the integrator and the long conversion time of the DC voltmeter used to measure code transitions. A fast variant of the servo-loop method using an accurate digital-to-analog converter in a feedback loop is described in S. Max, supra, but this requires a more complex interface board design for the Device-Under-Test (“DUT”) and a non-standard test interface. Therefore, linearity testing of most ADCs is performed using the ramp histogram technique. T. Kuyel, “Linearity Testing Issues of Analog to Digital Converters,” Proceeding of IEEE International Test Conference, 1999, pp 747-756. The sine wave histogram technique has a worst-case error in linearity measurements that is π times the error of a ramp of the same test length (test time) and therefore is used only in cases where generation of a ramp with the required linearity is not possible. J. Doemberg, Hae-Seung Lee and D. A. Hodges, “Full-Speed Testing of A/D Converters,” IEEE Journal of Solid-State Circuits, Vol. SC-19, NO. 6, December 1984, pp 820-827. The servo-loop method measures CTs one at a time, while the histogram techniques estimate all the CTs in one pass. Therefore, the histogram methods are inherently faster.

[0012] In the ramp histogram method for estimating CTs, a linear ramp or triangular wave is applied to the input of the ADC and a histogram of the output codes is computed. The CTs are estimated from the histogram using $\gamma_{i} = {V_{0} + {\frac{\left( {V_{F} - V_{0}} \right)}{N} \cdot \left( {\sum\limits_{i = 0}^{i}c_{i}} \right)}}$

[0013] where V₀ is the initial (minimum) value of the ramp,

[0014] V_(F) is the final (maximum) value of the ramp,

[0015] c_(i) is the number of occurrences of code i, and

[0016] N is the total number of samples in the histogram.

[0017] The INL and DNL can also be directly computed from the histogram without the computation of the CTs. For computing the DNL using a triangular wave or linear ramp, the probability that the input voltage is within a given interval is directly proportional to the width of the interval. Consequently, the width of each code (the voltage interval of the input voltage for which the output is equal to a given code) will be proportional to the number of occurrences of the given code in the histogram. Therefore, an estimate of the DNL of the ADC is given by ${DNL}_{i} = {\frac{c_{i}}{\left( {\sum\limits_{j = 1}^{2^{\quad^{''}}2}c_{j}} \right)/\left( {2^{''} - 2} \right)} - 1}$

[0018] The input waveform span is usually set to be slightly larger than the input range of the ADC to ensure occurrence of all codes. Therefore the first and last code counts are ignored in the DNL computation. The INL for the ADC is given by ${INL}_{i} = {\sum\limits_{j = 1}^{i}{{DNL}\lbrack j\rbrack}}$

[0019] These equations give the same DNL and INL, respectively, as those computed by Equations 1 and 2, above.

[0020] The number of variables that control the CTs of an ADC is much less than the number of CTs. The CTs have, therefore, been modeled by a linear model. Stenbakken and Souders I; Souders and Stenbakken; Stenbakken and Souders II; Stenbakken and Souders III; Lyons; Capofreddi and Wooley I; and Capofreddi and Wooley II, supra. The model is expressed as:

{overscore (γ)}−{overscore (m)}_(γ)+A_(γ)·{overscore (θ)}

[0021] where {overscore (γ)} are the 2n-1 CTs of an ADC,

[0022] m are the means (nominal values) of the CTs,

[0023] {overscore (θ)} is a set of scaling variables which control the variation in transition levels, and

[0024] A_(γ) is a matrix which relates the variables θ to the CTs linearly.

[0025] The model can be created from a set of training data, that is, a set of measured CTs for a plurality w of ADCs. The training data can be denoted by a matrix {circumflex over (X)}=[{circumflex over (x)}_(y)], where 1≦i≦2″−1 represents the index for the CTs, 1≦j≦w represents the index for the ADCs, and {circumflex over (x)}_(y) represents the measured CTs. The mean CTs {circumflex over (m)}_(γ1), are estimated using ${\hat{m}}_{\gamma,i} - {\frac{1}{w}{\sum\limits_{j - 1}^{w}{\hat{x}}_{i,j}}}$

[0026] where the matrix A_(γ) is determined using a principal value decomposition of {circumflex over (X)}.

[0027] An efficient way to do this is to subtract the mean transition level {circumflex over (m)}_(γ1) from the measured transitions {circumflex over (x)}_(ij) as x′_(ij)={circumflex over (x)}_(ij)−{circumflex over (m)}_(γ1)and then perform a singular value decomposition of the resulting matrix. Singular value decomposition resolves the resulting matrix X′ into a product of three matrices

X′=UΣV^(T)

[0028] where U and V are orthogonal matrices, and

[0029] Σ is a diagonal matrix whose entries are arranged in a decreasing order.

[0030] D. S. Watkins, “Fundamentals of Matrix Computations,” John Wiley and Sons, 1991. The matrix A_(γ) is obtained by extracting the first p columns of U, where p is the number of diagonal elements of Σ that have significant value. Stenbakken and Souders III, stipra. The operation is as follows: $\hat{X} = \begin{bmatrix} {\hat{x}}_{1,1} & {\hat{x}}_{1,2} & \cdots & {\hat{x}}_{1,w} \\ {\hat{x}}_{2,1} & {\hat{x}}_{2,1} & \cdots & {\hat{x}}_{2,w} \\ \cdots & \cdots & \cdots & \cdots \\ {\hat{x}}_{{2^{''} - 1},1} & {\hat{x}}_{{2^{''} - 1},2} & \cdots & {\hat{x}}_{{2^{n} - 1},w} \end{bmatrix}$ ${\hat{m}}_{\gamma,i} = {\frac{1}{w}{\sum\limits_{j = 1}^{w}{\hat{x}}_{i,j}}}$ $X^{\prime} = {\hat{X} - \begin{bmatrix} {\hat{m}}_{\gamma,1} & {\hat{m}}_{\gamma,1} & \cdots & {\hat{m}}_{\gamma,1} \\ {\hat{m}}_{\gamma,2} & {\hat{m}}_{\gamma,2} & \cdots & {\hat{m}}_{\gamma,2} \\ \cdots & \cdots & \cdots & \cdots \\ {\hat{m}}_{\gamma,{2^{n} - 1}} & {\hat{m}}_{\gamma,{2^{''} - 2}} & \cdots & {\hat{m}}_{\gamma,{2^{''} - 1}} \end{bmatrix}}$ $X^{\prime} = {\underset{\underset{2^{n} - {1 \times w}}{}}{\begin{bmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,w} \\ u_{2,1} & u_{2,1} & \cdots & u_{2,w} \\ \cdots & \cdots & \cdots & \cdots \\ u_{{2^{n} - 1},1} & u_{{2^{''} - 1},2} & \cdots & u_{{2^{''} - 1},2} \end{bmatrix}}{\underset{\underset{w \times w}{}}{\begin{bmatrix} \sum\limits_{1} & 0 & {{0\quad \cdots}\quad} & 0 & 0 \\ 0 & \sum\limits_{2} & \cdots & 0 & 0 \\ \cdots & \cdots & \sum\limits_{n_{p}} & 0 & 0 \\ 0 & 0 & 0 & ɛ & 0 \\ 0 & 0 & 0 & 0 & ɛ \end{bmatrix}} \cdot \underset{\underset{w \times w}{}}{\begin{bmatrix} v_{1,1} & v_{1,2} & \cdots & v_{1,w} \\ v_{2,1} & v_{2,1} & \cdots & v_{2,w} \\ \cdots & \cdots & \cdots & \cdots \\ v_{w,1} & v_{w,2} & \cdots & v_{w,w} \end{bmatrix}}}}$

[0031] The resulting A_(γ) has orthonormal columns, that is, ${{\overset{\_}{A}}_{\gamma_{i}}^{T} \cdot {\overset{\_}{A}}_{\gamma_{j}}} - \left( \begin{matrix} 0 & {i \neq j} \\ 1 & {i = j} \end{matrix} \right.$

[0032] where A_(γi) is the i^(th) column of A_(γ)

[0033] Given A_(γ), the variables {overscore (θ)} can be estimated using

{circumflex over (θ)}=(A _(γ) ^(Υ) A _(γ))⁻¹ A _(γ) ^(Υ)·({circumflex over (γ)}−{overscore (m)}_(γ))   (3)

[0034] The variables {overscore (θ)} of an empirical model derived in this manner have no physical significance; for example, they cannot be associated with the value of a single capacitor or resistor within the ADC. An estimate of the standard deviation of the scaling variables θ₁ is given by ${\hat{\sigma}}_{\theta_{i}} = \frac{s_{i}}{\sqrt{w - 1}}$

[0035] where s_(i) is the i^(th) diagonal element of the matrix Σ (i^(th) singular value).

[0036] The variables {overscore (θ)} may be estimated from a subset of all the CTs, Stenbakken and Souders I; Souders and Stenbakken; Stenbakken and Souders II; Stenbakken and Souders III; and Lyons, supra, to compute all the CTs from Equation 3. However, to measure a subset of the CTs the servo-loop technique has to be used, and this technique is not widely used in industry because of its long test time.

[0037] A technique for improving the accuracy of INL and DNL estimates based on a histogram of CTs is disclosed in Capofreddi and Wooley I and Capofreddi and Wooley II, supra. The technique involves the following steps: A coarse (noisy) estimate of the CTs of an individual ADC is obtained using a ramp with a reduced number of samples (ramp with reduced test time). The scaling variables that control the CTs of the ADC are estimated using $\hat{\overset{\_}{\theta}} = {{\left( {A_{\gamma}^{T}A_{\gamma}} \right)^{- 1}{A_{\gamma}^{T} \cdot \left( {\hat{\overset{\_}{\gamma}} - {\hat{\overset{\_}{m}}}_{\gamma}} \right)}} = {A_{\gamma}^{T} \cdot \left( {\hat{\overset{\_}{\gamma}} - {\hat{\overset{\_}{m}}}_{\gamma}} \right)}}$

[0038] where {circumflex over (γ)} are the (coarse) estimates of CTs computed from the histogram; and

[0039] A_(γ) is the linear model matrix.

[0040] The CTs are then computed from the {overscore (θ)} using Equation 3. This method gives a reduction in the standard deviation of the measurement noise in CT estimates by a factor of approximately [p/2^(n)]^(½). This reduction in noise occurs because the linear modeling technique reduces the 2^(n)-1 CTs top variables, and this has an inherent averaging effect on the measurement noise.

[0041] Although the latter estimation technique improves upon the accuracy in determining the CTs, it still requires considerable time to obtain satisfactory accuracy. Therefore, there is a need for an improved method and system for computing the scaling variables, and thereby estimating the CTs, for an ADC after production that reduces the amount of time required while maintaining the desired accuracy.

SUMMARY OF THE INVENTION

[0042] It has been found that, if the variance of measurement errors in {overscore (γ)} obtained from a histogram can be estimated, and the variance of the variables {overscore (θ)} are known, more accurate estimates of the variables {overscore (θ)} can be made than has heretofore been recognized. From these optimal estimates for {overscore (θ)}, an improved estimate of {overscore (θ)} can be made, resulting in reduced test time required in comparison to the servo-loop and prior histogram methods.

[0043] The method of the present invention comprises a model building phase and a production test strategy. During the model-building phase, a linear model of an ADC is constructed from a set of accurately measured CTs for a set of training ADCs. The average input-referred noise for the training ADCs is also measured from the set of ADCs. Based on the measured CTs and the measured noise, the standard deviation a of the {overscore (θ)}, the standard deviation σ_(eγ) of the error in {overscore (θ)}, and the variance in {overscore (γ)} due to noise are computed.

[0044] A minimal test length N, that is, the duration of the ramp input from its initial value V_(o) to its final value V_(F), is selected that will give the required accuracy in the CT estimates. During a production test of an individual ADC, a ramp of the selected test length is applied to the individual ADC, a histogram of codes is produced, and the CTs for the individual ADC are estimated from the resulting histogram. Then, using the parameters computed during the training phase, that is, σ_(σ), θ_(eγ)and A_(γ), an optimal estimate for the CTs is made. INL and DNL, as well as other characteristics, may then be computed for the individual ADC.

[0045] Therefore, it is a principal object of the present invention to provide a novel and improved method and system for making optimal estimates of linearity metrics of analog-to-digital converters.

[0046] It is another object of the present invention to provide a novel and improved method and system for production testing of the linearity metrics of analog-to-digital converters.

[0047] It is a further object of the present invention to provide a method and system for rapidly estimating linearity metrics of an individual analog-to-digital converter based on a histogram of transition code voltages and a statistical model constructed from a training set of like analog-to-digital converters.

[0048] It is yet another object of the present invention to provide a method and system for estimating linearity metrics of an analog-to-digital converter with increased accuracy by employing a least squares estimate based on the variance of errors in measurements of the transition code voltages.

[0049] The foregoing and other objects, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention, taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0050]FIG. 1 is a graph of a transfer function of a representative analog-to-digital converter, showing deviations of the transfer function from the ideal.

[0051]FIG. 2 is a block diagram of a system for testing analog-to-digital converters according to the present invention.

[0052]FIG. 3 shows a histogram of test results for an analog-to-digital converter in response to a ramp input.

[0053]FIG. 4 shows the typical output of an analog-to-digital converter in response to a ramp input.

[0054]FIG. 5 shows how errors are produced in the histogram of FIG. 3 as a result of noise.

[0055]FIG. 6 is a schematic diagram of a test circuit for analog-to-digital converter measurements according to the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0056] In the present invention a histogram approach is used for estimating INL and DNL because of the reduced test time required in comparison to the servo-loop method. It has been found that, if the variance of measurement errors in {overscore (θ)} obtained from a histogram can be estimated, and the variance of the variables {overscore (θ)} are known, more accurate estimates of the variables {overscore (θ)} can be made than has heretofore been recognized. From these optimal estimates for {overscore (θ)}, an improved estimate of {overscore (γ)} can be made.

Overview of the Test Strategy

[0057] The method of the present invention is illustrated generally in FIG. 2. The steps within box 10 have been employed in the prior art, as discussed in the Background of the Invention, while the remaining steps represent improvements to the prior art. The present invention comprises an off-line model building phase, represented by the steps in box 12, and a production test strategy, represented by the steps in box 14.

[0058] During the model-building phase, a linear model (m_(γ), A_(γ)) for the ADC is constructed from a set of training data (accurately measured CTs for a set of ADCs) as described in the Background of the Invention. Specifically, a ramp input is applied to a training set of ADCs of the type to be tested, typically 100 to 150 units, as shown by box 16, and the CTs of all ADCs of the training set are accurately measured, as shown by box 18. The linear model (m_(γ), A_(γ)) is then constructed from the measured data, as shown by box 20 and explained in the Background of the Invention.

[0059] The average input-referred noise for the ADCs is also measured from the training set, as shown by box 22. Based on the measured CTs and the measured noise, the parameters required for making optimal estimates of the CTs, that is, the standard deviation σ₇₄ of the {overscore (θ)} and the standard deviation σ_(eγ) of the error in {overscore (γ)} due to noise are computed, as shown by box 24.

[0060] A minimal test length N, that is, the duration of the ramp input from its initial value V_(O) to its final value V_(F), is selected that will give the required accuracy in the CT estimates, as shown by box 24. During a production test, a ramp of the computed test length is applied to the DUT, a histogram of codes is produced, as shown in FIG. 3, and the CTs are estimated from the resulting histogram. Then, using the parameters computed during the training phase, that is, σ_(θ) and σ_(eγ), and the variance of the error in {overscore (γ)} due to noise σ_(eγ) ², an optimal estimate for the CTs is made. Device binning is then performed on the basis of these optimal CT estimates.

Optimal Prediction of CTs

[0061] The histogram estimates of CTs can be modeled as

{overscore ({circumflex over (γ)})}={overscore (γ)}+{overscore (e)}_(γ)={overscore (m)}_(γ)+A_(γ)·{overscore (θ)}−{overscore (e)}_(γ)

[0062] where e_(γ) is the error in the estimate of γ.

[0063] It is assumed that e_(γ) the error due to noise, is a random vector with zero mean and variance. It is also assumed that the elements of e_(γ) are independent. This assumption is true as long as the input-referred noise of the ADC is less than the width of an LSB of the ADC. S. Max, supra. Under these assumptions, the estimates of the variables are given by $\hat{\overset{\_}{\theta}} = {{A_{\gamma}^{T} \cdot \left( {\hat{\overset{\_}{\gamma}} - {\hat{\overset{\_}{m}}}_{\gamma}} \right)} = {\overset{\_}{\theta} + {\overset{\_}{e}}_{\theta}}}$

[0064] where {overscore (e)}_(θ) is characterized by variance σ² _(e{overscore (Θ)}).

[0065] The elements of {overscore (e)}_(θ) are uncorrelated, since the columns of A_(γ) are orthonormal. Since the variance of errors in {overscore ({circumflex over (θ)})} are known, a least squares estimate for {overscore (θ)} can be formed, as follows. For two random variables x and y with zero means, standard deviations σ_(x) and σ_(y), and correlation coefficient r, the least squares linear estimate for x given y is given by $\overset{\sim}{x} = {{E\left( x \middle| y \right)} = {r \cdot \frac{\sigma_{x}}{\sigma_{y}} \cdot y}}$

[0066] Substituting x=θ_(i), the i^(th) element of {overscore (θ)} and y=θ_(i)+e_(θ1), produces an optimal estimate for {overscore (θ)}, which is denoted {overscore ({tilde over (θ)})}. $\begin{matrix} {{\overset{\sim}{\theta}}_{i} = {\frac{\sigma_{\theta \quad i}^{2}}{\sigma_{\theta \quad i}^{2} + \sigma_{e\quad \theta}^{2}} \cdot \left( {\theta_{i} + e_{\theta}} \right)}} \\ {= {\frac{\sigma_{\theta \quad i}^{2}}{\sigma_{\theta \quad i}^{2} + \sigma_{e\quad \gamma}^{2}} \cdot {\overset{\_}{A}}_{\gamma \quad i}^{T} \cdot \left( {\hat{\overset{\_}{\gamma}} - {\hat{\overset{\_}{m}}}_{\gamma}} \right)}} \end{matrix}$

[0067] where σ_(θ1) is the standard deviation of θ₁, and

[0068] {overscore (A)}_(γ1) is the i^(th) column of A_(γ).

[0069] The variance in the optimal CT estimates {overscore ({tilde over (γ)})} can be shown to be

σ² _(eγ)=diag[A_(γ)·D[σ² _(eθ]·A) _(γ) ^(Υ)]

[0070] where σ² _(eγ) is the variance in the error in {overscore ({tilde over (θ)})},

[0071] the diag[.] operator extracts the diagonal of a matrix, and

[0072] the D[.] operator creates a diagonal matrix from a vector.

[0073] The values of σ_(e{tilde over (θ)}) can be shown to be $\begin{matrix} {\sigma_{e\quad \overset{\sim}{\theta}i}^{2} = {\frac{\sigma_{\theta \quad i}^{2}}{\sigma_{\theta \quad i}^{2} + \sigma_{e\quad \gamma}^{2}} \cdot \sigma_{e\quad \gamma}^{2}}} & (5) \end{matrix}$

[0074] where σ² _(eγ) is the variance of errors in the CTs obtained from a histogram of the codes produced by the ADC under test.

[0075] Using the {tilde over (θ)}, found above, the optimal estimates for CTs are obtained from $\overset{\sim}{\overset{\_}{\gamma}} = {\hat{\overset{\_}{m}} + {A_{\gamma} \cdot \overset{\sim}{\overset{\_}{\theta}}}}$

[0076] Then, based on the estimates of CTs, INL and DNL may be computed as explained in the Background of the Invention.

Predicting Variance of Noise in CT Estimates

[0077] The optimal CT estimates in Equation 4 need the value for the variance in the errors in CT estimates obtained from a histogram of codes produced by the DUT. The value of σ² _(eγ) may be derived as a function of the test length, given the variance of the input-referred noise of the ADC.

[0078] The noise sources inside the ADC are modeled as an equivalent noise source in series with the analog input of the ADC. As is well understood in the art, an ADC samples the input signal periodically and converts the sampled value to an output code. As is well understood from the Nyquist theorem, the sample rate must be at least twice the highest frequency of the input signal to reproduce the input signal faithfully. Thus, for a ramp input signal, there must be multiple samples between each CT. For an input signal V(t), the samples captured by the ADC would be s_(i)=V(iτ)+e_(n)(iτ)=V_(i)+e_(n), where i is the index of the sample ADC, and τ is the period of the sampling clock of the ADC. The random process e_(n)(iτ) is an independent and identically distributed (“i.i.d”) Gaussian process, having zero mean and standard deviation σ_(n). The value of σ_(n) is usually not known a priori and has to be estimated experimentally from a set of ADCs, as will be understood by those skilled in the art.

[0079]FIG. 4 illustrates the measured output of an 8-bit ADC with a linear ramp input having an average of 128 samples/code. It can be seen that when the input to the ADC is near the code transitions, the output of the ADC switches randomly between adjacent codes due to noise in the ADC. Thus, the CTs estimated from a histogram of this output will have two sources of errors:

[0080] 1. If there are n samples (on the average) per code of the ADC, the minimum step change possible in the measured DNL is 1/n, so that the resolution of the measurement is restricted to 1/n LSBs; and

[0081] 2. The noise in the ADC will cause it to give wrong output codes for an input signal near a CT.

[0082]FIG. 5, which shows voltage samples near a code transition from j to j+1, illustrates the effects of these two sources of errors. The horizontal axis represents voltage input to the ADC and the dashed vertical lines 26 represent the sample voltages that would have been obtained for an ideal (noise-free) ADC in response to the input voltage V(nτ). For voltage samples near the CT, voltage samples which should ideally have given codej at the output have a non-zero probability of giving a output code greater than j due to ADC noise and vice- versa. Since the voltage samples are spaced Δ Volts apart, the resolution of the CT measurement is Δ Volts.

[0083] To explain the effect of noise and finite resolution of measurement on the estimation of the CT, the following two definitions are used.

V_(h)=max(V_(i)|P[C(V_(i)+e_(n))>j]≈0)

[0084] That is, V_(b) is the largest sample value of the input signal that has (approximately) zero probability of giving an output code greater than j. C(x) is the code at the output of the ADC when x is the input value.

S−{s_(i|P[C (s) _(i))−j]>O, P[C(s_(i))>j]>0}

[0085] That is, S is a set of samples that have non-zero probabilities of giving an output code greater than or equal toj depending on the value of noise on the samples. The true value for the CT γ is given by γ_(i)=V_(b)+mΔ+α where Δ and α are as indicated in FIG. 5. It is assumed that the CT can occur at any point between the two voltage samples with equal probability, that is, a can vary uniformly from 0 to Δ.

[0086] Under the forgoing definitions, the measured value of the CT is given by ${\hat{\gamma}}_{j} = {V_{h} + {k\quad \Delta}\quad + \frac{\Delta \quad}{2}}$

[0087] where k is the number of elements (samples) in the set S′, defined as

S′={S₁|S₁εS_(i)C ((S₁)≦j)}

[0088] That is, S′ is the subset of S that give outputs less than or equal to j. The error in estimation of γ, e_(γj)=γ_(j)−{circumflex over (γ)}_(j) is given by ${\left( {m - k} \right)\Delta} + {dj} - {\frac{\Delta}{2}.}$

[0089] The mean square value of e_(γj), is given $\begin{matrix} {{E\left( e_{\gamma \quad i}^{2} \right)} = {{\Delta {\int_{x = 0}^{\Delta}{{E\left( \left( {m - k} \right)^{2} \middle| {\alpha - x} \right)}{x}}}} + {2{\int_{x = 0}^{\Delta}{{E\left( {{\left( {m\quad k} \right)\alpha} = x} \right)}\left( {\alpha \quad \frac{\Delta}{2}} \right){x}}}} + \frac{\Delta^{2}}{12}}} & (6) \end{matrix}$

[0090] where E(x|y) is the conditional expectation of x given the value of y; and

[0091] m is the true value of k if there were no noise.

[0092] The mean of e_(γ), which is assumed to be Gaussian, is zero, so the variance σ_(eγ) ² is just the mean square of e_(γ), E(e² _(γ).)

[0093] The foregoing Equation 6 requires the estimation of for E((m−k)l α=x) and E((m−k)²|α=x) . Since m is a constant, only the estimated mean and variance of k are needed. For a given value of α, the random variable k can be modeled as $k = {\sum\limits_{i \in S}\mu_{i}}$

[0094] where μ₁ =1 iff, and μ₁ =0 otherwise. The probabilities of μ, being equal to one is given by $\begin{matrix} {{P\left\lbrack {{C\left( s_{i} \right)} \leq j} \right\rbrack} = {P\left\lbrack {{V_{i} + e_{n}} \leq \gamma} \right\rbrack}} \\ {= {{P\left\lbrack {e_{n} \leq {\gamma - V_{i}}} \right\rbrack} = {\frac{1}{\sqrt{2\pi} \cdot \sigma}{\int_{x = {- \infty}}^{\gamma - V_{i}}{^{\frac{x^{2}}{2 \cdot \sigma_{n}^{2}}}{x}}}}}} \\ {= {1 - {Q\left( \frac{\gamma - V_{i}}{\sigma_{n}} \right)}}} \end{matrix}$ ${{where}\quad {Q(\alpha)}} = {\frac{1}{\sqrt{2\pi}} \cdot {\int_{x = \alpha}^{\infty}{^{\frac{x^{2}}{2}}{x}}}}$

[0095] Substituting γ−V, equal to iΔ+α, produces ${P\left\lbrack {\mu_{i} = 1} \right\rbrack} = {{1 - {Q\left( \frac{{i\quad \Delta} - \alpha}{\sigma_{n}} \right)}} = \beta_{i}}$ P[μ_(i) = 0] = 1 − β_(i)

[0096] The mean of μ₁ is equal to β₁ and the variance of μ₁ is equal to β_(i)(1−β_(i)). Therefore the mean and variance of k are given by ${E(k)} = {{\sum\limits_{i \in S}{\beta_{i}\quad \sigma_{k}^{2}}} = {{\sum\limits_{i \in S}\beta_{i}} - {\sum\limits_{i \in S}\beta_{i}^{2}}}}$

[0097] Now, σ² _(eγ) is estimated by substituting E(k) and σ² _(K) into Equation 6 for E((m−k)|α=x) and E((m−k)²|α=x), respectively.

[0098] For a linear ramp or triangular wave, the resolution in measurement Δ is independent of the CT. For a test signal having N samples of ADC output, Δ is given by $\Delta = {{\frac{V_{PS}}{N}\quad {Volts}} = {\frac{2^{n}}{N}{LSBs}}}$

[0099] where V_(FS) is the full-scale voltage of the ADC and n is the number of bits.

[0100] Equation 6 is then integrated numerically.

Selecting the Test Length

[0101] The standard deviation in the optimal estimates of CTs σ_(eγ) can be estimated from equation (4). However, the accuracy requirements on CTs are usually specified in terms of the maximum error allowable. Therefore, the variance should be converted into the maximum error. To achieve this, the error in σ_(eγ) is modeled as a Gaussian random variable. For a Gaussian random variable with standard deviation given σ_(eγ), a number z is found such that, with a probability 1−ε, the error in measurement will not exceed (z·σ_(eγ)). That is, z represents positive and negative limits of integration of the Gaussian distribution function which will produce a probability 1−ε, where ε is an acceptable level of confidence in the estimates of the CT.

P[|e_(γ)|≦δ]=1−ε

[0102] where P[.] denotes the probability operator.

[0103] ε is a very small value like 10⁻⁵ or 10⁻⁶, which is used because the Gaussian random variable has a non-zero probability of being any value. For example, if ε is chosen to be 10⁻³, z would be 3.0309, because a Gaussian random variable has a probability of 10⁻³ of being greater than 3.0309 times its standard deviation.

[0104] Therefore, a minimum test length is chosen such that σ_(eγ) is less than η/z where η is the maximum allowable error in the measurement. ${\max \left( \sigma_{e\quad \overset{\sim}{\gamma}} \right)} \leq \frac{\eta}{z}$

[0105] A lower value of ε will result in a larger value of z and hence a larger test length.

Test System

[0106] A system that may be used to make measurements on the ADCs is shown in FIG. 6. A PCI-61 I OETM Data Acquisition (“DaQ”) plug-in card 28, available from National Instruments Corporation, may used to generate a linear ramp for input to the ADC under test and to transfer the outputs of a ADC under test 32 to a computer (not shown) to process the data. A low-pass filter 30, consisting of two 1.5k ohm resistors 34 and 36, and a 0.1 μF capacitor 38 may be used to filter out high frequency noise and unwanted artifacts from the output of the card 28. The DaQ card also has two general-purpose counters which may be used to generate the timing signals (clock and chip select) for the ADC under test. A 74HC04 inverter 40 is used to buffer the output from the ADC under test to the DaQ card 28. An LM7805 3-termninal regulator 44 may be used to provide a stable power supply and reference to the ADC under test. LabVIEW™ software is preferably used to control the DaQ card for data acquisition.

[0107] The aforedescribed system may be used both to acquire training data and to test individual ADCs after production, though it is anticipated that the user would design a test system that provides these capabilities, employing general electrical engineering knowledge, which particularly suits the user's application.

[0108] The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow. 

1. A method for making optimal estimates of linearity metrics of an analog-to-digital converter, comprising: constructing a statistical model of transition code voltages of the analog-to-digital converter based on application of a test input signal to a plurality of training analog-to-digital converters of like kind and measurements of the transition code voltages of said plurality of training analog-to-digital converters, said statistical model being adapted to produce an estimate of the transition code voltages for an individual analog-to-digital converter in response to a plurality of scaling inputs; generating said scaling inputs by applying said test signal as an input to said individual analog-to-digital converter, measuring the transition code voltages thereof, and computing a least-squares estimate of said scaling inputs given said measured transition code voltages; and applying said generated scaling inputs to said statistical model to produce a set of estimated transition code voltages of said individual analog-to-digital converter that are more accurate than said measured transition code voltages thereof.
 2. The method of claim 1, wherein said test signal is a ramp signal.
 3. The method of claim 1, wherein said scaling inputs may be represented by a scaling matrix and said statistical model is a model matrix of values such that, when said model matrix is multiplied times said scaling matrix and the product thereof is added to the corresponding mean values of said transition code voltages of said plurality of analog-to-digital converters, the sum is said set of estimated transition code voltages.
 4. The method of claim 3, wherein said model matrix is generated by singular value decomposition of a matrix of values representing the difference between measured transition code voltages of said plurality of training analog-to-digital converters and their respective means.
 5. The method of claim 4, wherein said least squares estimate of said scaling inputs is computed by computing the variances of the scaling values, the mean transition code voltages, and the variance of the error in transition code voltages from said plurality of training analog-to-digital converters, selecting a test length for the test signal, applying said ramp signal as an input to said individual analog-to-digital converter, constructing a histogram of the output codes therefrom, multiplying the ratio of said variances of scaling values to the sum of the variances in scaling values plus variances of the error in transition code voltages times the transpose of the model matrix, and multiplying the product thereof times the differences between the transition code voltages and their respective means.
 6. The method of claim 5, wherein the probability distribution function for the noise in said individual analog-to-digital converter is assumed to be Gaussian.
 7. The method of claim 6, wherein said measurement length is selected such that the standard deviation in the error of the transition code voltages is less than the ratio of the maximum allowable error in measurement to a limit of integration of the probability distribution of error in the transition code voltages that produces an acceptable probability of error.
 8. The method of claim 1, wherein said least squares estimate of said scaling inputs is computed by computing the variances of the scaling values, the mean transition code voltages, and the variance of the error in transition code voltages from said plurality of training analog-to-digital converters, selecting a test length for the ramp signal, applying said ramp signal as an input to said individual analog-to-digital converter, constructing a histogram of the output codes therefrom, multiplying the ratio of said variances of scaling values to the sum of the variances in scaling values plus variances of the error in transition code voltages times the transpose of the model matrix, and multiplying the product thereof times the differences between the transition code voltages and their respective means.
 9. The method of claim 8, wherein the probability distribution function for the noise in said individual analog-to-digital converter is assumed to be Gaussian.
 10. The method of claim 9, wherein said measurement length is selected such that the standard deviation in the error of the transition code voltages is less than the ratio of the maximum allowable error in measurement to a limit of integration of the probability distribution of error in the transition code voltages that produces an acceptable probability of error.
 11. A system for making optimal estimates of linearity metrics of a test analog-to-digital converter, comprising: a test signal generator for producing a test signal for input to the test analog-to-digital converter; a processor for receiving both said test signal and digital codes produced by the test analog-to-digital converter in response to said test signal, and determining the mean values of the transition code voltages of the test analog-to-digital converter, determining the variance of the errors in the transition code voltages of the test analog-to-digital converter, from said mean values of the transition code voltages of the test analog-to-digital converter, the variance of the errors in the transition code voltages of the test analog-to-digital converter, and a set of predetermined data representing the variance of transition code voltages in a training plurality of like analog-to-digital converters and a statistical model of the test analog-to-digital converter based on said training plurality of like analog-to-digital converters, computing estimates of the transition code voltages of the test analog-to-digital converter.
 12. The system of claim 11, wherein said test signal is a ramp signal.
 13. The system of claim 11, wherein said processor for receiving both said test signal and digital codes produced by the test analog-to-digital converter in response to said test signal comprises means for constructing a histogram of codes produced by the test analog-to-digital converter and, from said histogram, computing the mean transition code voltages and variance of error in transition code voltages of the test analog-to-digital converter.
 14. The system of claim 13, wherein said processor for receiving both said test signal and digital codes produced by the test analog-to-digital converter in response to said test signal further comprises means for computing a least squares estimate of scaling values which, when applied to said statistical model of the test analog-to-digital converter, produce said estimated transition code voltages of the test analog-to-digital converter.
 15. The system of claim 14, further comprising a modeling signal generator for producing a modeling signal for input to the training plurality of analog-to-digital converters, a modeling processor for receiving both said modeling signal and digital codes produced by the training plurality analog-to-digital converters in response to the modeling signal, and determining the transition code voltages of the training plurality of analog-to-digital converters, determining the mean values of the transition code voltages of the training plurality of analog-to-digital converters and, from that data, constructing a statistical model of a test analog-to-digital converter which receives as an input a set of scaling values derived from the test analog-to-digital converter and produces as an output estimates of the transition code voltages of the test analog-to-digital converter.
 16. The system of claim 15, wherein said modeling processor also computes the variance of error in the transition code voltages of the training plurality of analog-to-digital converters.
 17. The system of claim 15, wherein said modeling signal is a ramp signal. 